// 插件本质是一个对象，内部包含一个 install 方法 vue.use(plugin, options) 时会调用 install 方法，install 方法可以接收两个参数 Vue 构造函数 options 配置对象

// 引入组件
import Input from "./components/Input";

// 引入格式化时间的第三方包
import dayjs from "dayjs"

export default {
  install(Vue, options) {
    // 注册全局组件(全局注册)
    Vue.component("Input", Input);

    // 注册全局指令
    Vue.directive("focus", {
      // 指令所在的元素被插入页面时
      inserted(element, binding) {  // 简写和 inserted 调用时机不同
        // binding 代表当前指令的所有信息 可以通过 value 拿到指令的属性值
        if (binding.value) {
          element.focus();
          element.placeholder = options.tips
        }
      },
    });

    // 注册全局过滤器
    Vue.filter("timeFormatFilter", (value, filterConditions) => {
      return dayjs(value).format(filterConditions)
    })
  },
};
